Integrantes
Apellido, Nombre Código Correo Electronico Alvarado Vargas, Fabian 201910354 fabian.alvarado@utec.edu.pe Murga Díaz, Nathalie Inés 202110238 nathalie.murga@utec.edu.pe Flores Soto, Ronaldo Dylan 202110122 ronaldo.flores@iutec.edu.pe Vilcarromero Moscoso, Rodo Arturo 202010431 rodo.vilcarromero@utec.edu.pe Hilario Quintana, Jeffry 202020082 jeffry.hilario@utec.edu.pe
Introducción
La moda es una industria global en constante evolución y uno de los mayores impulsores del comercio internacional. Los consumidores buscan constantemente nuevas tendencias y estilos únicos, lo que hace que la industria de la moda sea altamente competitiva. Para ayudar a los minoristas a mantenerse al día con las últimas tendencias y preferencias de los consumidores, se están desarrollando nuevas herramientas de análisis de datos y motores de búsqueda para la moda.
Relevancia y Justificación:
En este contexto, el desarrollo de un gestor de motor de búsqueda para la elaboración de recomendaciones sobre las preferencias de la ropa de moda en la India se vuelve crucial para mejorar la capacidad de las empresas de este sector, ya que permite ofrecer productos más acordes a las necesidades y gustos de los consumidores. Además, este tipo de herramientas tecnológicas permiten recopilar grandes cantidades de datos sobre las preferencias de los consumidores de manera eficiente, lo que es vital para mejorar la eficacia y eficiencia de la toma de decisiones empresariales.
Objetivos:
Objetivo Principal:
Nuestro objetivo de este trabajo es presentar un gestor de motor de búsqueda para elaborar recomendaciones sobre las preferencias de la ropa de moda en la India. Para ello, se analizará una base de datos, MYNTRA, que incluye información sobre los gustos y preferencias de los consumidores en cuanto a diferentes tipos de prendas y estilos de moda.
Objetivos Secundarios
A partir de esta información, se desarrollará un modelo de recomendación que permita a las empresas del sector ofrecer productos más acordes a las necesidades y gustos de los consumidores, contribuyendo así a mejorar su competitividad y su capacidad de satisfacer las demandas del mercado.
Datos
Recolección de datos
Se ha seleccionado la data de una base de datos de Kaggle con el nombre “Fashion Clothing Products Dataset” el cual presenta una población de 10000 valores. La base de datos se origina en Myntra.com, Myntra es una importante empresa india de comercio electrónico de moda con sede en Bengaluru, Karnataka, India. La empresa se fundó en 2007 para vender artículos de regalo personalizados. En mayo de 2014 , FlipKart adquirió Myntra.com.
Empezaremos cargando nuestra base de datos
library(readr)
library(dplyr)
library(modeest)
library(ggplot2)
library(plotrix)
dataframe<-read_csv("myntra_products_catalog.csv")
dataframe
Población Objetivo
Seleccionaremos una muestra de 1000 variables para poder cumplir nuestros objetivos y poder responder de manera adecuada cada pregunta usando los análisis y limpieza de los datos que hemos aprendido a lo largo de este curso.
A continuación seleccionaremos nuestra muestra
dataMuestra<-dataframe[1:1000,]
dataMuestra
y continuaremos con nuestro estudio en base a esta
Variables de estudio iniciales
Para la base de datos presentamos las siguientes variables:
| Nombre de variable | Tipo de variable | Descripción |
|---|---|---|
| ProductoId | cualitativa | Es nuestra llave primaria para cada producto, única en toda la base de datos |
| NombreProducto | cualitativa | El nombre del producto |
| MarcaProducto | cualitativa | La marca que fabrica el producto |
| Género | cualitativa | El género el cual esta destinado para el producto |
| PrecioUSD | cuantitativa | El precio en Rupias(INR) convertido a dolares estadounidenses(USD) |
| NumImagenes | cuantitativa | Cantidad de imágenes que hay para el producto |
| Descripción | cualitativa | Una pequeña descripción sobre el producto |
| ColorPrimario | cualitativa | Color del producto |
Actualizamos el nombre de nuestras columnas para una mejor visualización de nuestro estudio.
colnames(dataMuestra)
## [1] "ProductID" "ProductName" "ProductBrand" "Gender" "Price (INR)"
## [6] "NumImages" "Description" "PrimaryColor"
colnames(dataMuestra)<-c("ProductoId","NombreProducto","MarcaProducto","Genero","PrecioUSD","NumImagenes","Descripción","ColorPrimario")
Ahora nuestras columnas se llamaran
colnames(dataMuestra)
## [1] "ProductoId" "NombreProducto" "MarcaProducto" "Genero"
## [5] "PrecioUSD" "NumImagenes" "Descripción" "ColorPrimario"
Control de los Na en las variables
any(is.na(dataMuestra$ProductoId))
## [1] FALSE
any(is.na(dataMuestra$NombreProducto))
## [1] FALSE
any(is.na(dataMuestra$MarcaProducto))
## [1] FALSE
any(is.na(dataMuestra$Genero))
## [1] FALSE
any(is.na(dataMuestra$PrecioUSD))
## [1] FALSE
any(is.na(dataMuestra$NumImagenes))
## [1] FALSE
any(is.na(dataMuestra$Descripción))
## [1] FALSE
any(is.na(dataMuestra$ColorPrimario))
## [1] TRUE
Detectamos que color primario cuenta con valores Na entonces procedemos a corregirlo
dataMuestra$ColorPrimario[is.na(dataMuestra$ColorPrimario)]<-"No color"
any(is.na(dataMuestra$ColorPrimario))
## [1] FALSE
Convertimos la rupia del Precio del producto a dolares estadounidenses
dataMuestra$PrecioUSD<-dataMuestra$PrecioUSD*0.012
dataMuestra$PrecioUSD[1:10]
## [1] 140.940 69.720 10.788 67.188 9.108 9.492 8.628 10.788 7.968
## [10] 208.320
Análisis descriptivo
La moda de los productos:
getmode <- function(mod) {
uniqv <- unique(mod)
uniqv[which.max(tabulate(match(mod, uniqv)))]
}
modNombreProducto <- dataMuestra$NombreProducto
result <- getmode(modNombreProducto)
print(result)
## [1] "Parx Men Blue Slim Fit Checked Casual Shirt"
#OTRA FORMA
mfv(dataMuestra$NombreProducto,method="mlv")
## [1] "Parx Men Blue Slim Fit Checked Casual Shirt"
A partir de esta función, podemos determinar e producto que más se repite, es decir, el que posee mayor demanda por los consumidores. En este caso es “Parx Men Blue Slim Fit Checked Casual Shirt”.
tablaNombreProducto<-table(modNombreProducto)
maxNombreProducto<-max(tablaNombreProducto)
print(maxNombreProducto)
## [1] 16
# Convertir la tabla en un dataframe
tabla_df <- as.data.frame(tablaNombreProducto)
# Acceder al conteo
conteo <- tabla_df$Freq
# Definir el valor umbral para cambiar el color de la barra
ggplot(tabla_df,aes(x=tabla_df$modNombreProducto,y=tabla_df$Freq)) +
geom_bar(stat = "identity", fill = ifelse(conteo == maxNombreProducto, "green", "blue")) +
labs(x = "Nombre Producto", y = "Cant. Apariciones") +
ggtitle("Gráfico de barras - NombreProducto") +
theme_minimal()
ProductosPreferidos<-dataMuestra %>%
filter(dataMuestra$NombreProducto==result)
precios<- as.data.frame(table(ProductosPreferidos$PrecioUSD))
colores<-as.data.frame(table(ProductosPreferidos$ColorPrimario))
sexos<-as.data.frame(table(ProductosPreferidos$Genero))
EXPLICACIÓN:
Podemos observar en mediante este gráfico de barras que el nombre que más pedido en MYNTRA es “Parx Men Blue Slim Fit Checked Casual Shirt” con un total de 16 veces pedido. Además de que su rango de precios es entre:
range(as.double(as.character(precios$Var1)))
## [1] 8.148 11.268
print(colores$Var1)
## [1] Blue
## Levels: Blue
print(sexos$Var1)
## [1] Men
## Levels: Men
Podemos concluir que los hombres, que compran “Parx Men Blue Slim Fit Checked Casual Shirt” a un precio entre 8.148 y 11.268 les gusta el color azul, además de que tambien es el producto.
La moda de la marca del producto:
getmode <- function(mod) {
uniqv <- unique(mod)
uniqv[which.max(tabulate(match(mod, uniqv)))]
}
mod <- dataMuestra$MarcaProducto
result <- getmode(mod)
print(result)
## [1] "Parx"
A partir de esta función, podemos determinar que la marca del producto que más se repite, es decir, la marca de preferencia por la población muestrada es “Parx”.
tablaMarca<-table(dataMuestra$MarcaProducto)
maxMarca<-max(table(dataMuestra$MarcaProducto))
print(maxMarca)
## [1] 112
# Convertir la tabla en un dataframe
tabla_df <- as.data.frame(tablaMarca)
# Acceder al conteo
conteo <- tabla_df$Freq
# Definir el valor umbral para cambiar el color de la barra
ggplot(tabla_df,aes(x=tabla_df$Var1,y=tabla_df$Freq)) +
geom_bar(stat = "identity", fill = ifelse(conteo == maxMarca, "green", "blue")) +
labs(x = "Marca Producto", y = "Cant. Apariciones") +
#ggline(promedioMarca ~range())
ggtitle("Gráfico de barras - MarcaProducto") +
theme_minimal()
MarcaPreferida<-dataMuestra%>%
filter(dataMuestra$MarcaProducto==result)
precio<-as.data.frame(table(MarcaPreferida$PrecioUSD))
color<-as.data.frame(table(MarcaPreferida$ColorPrimario))
sexos<-as.data.frame(table(MarcaPreferida$Genero))
EXPLICACIÓN:
Podemos observar en mediante este gráfico de barras la marca “Parx” en MYNTRA es la preferida de los clientes siendo un total de 112 veces pedido
range(as.double(as.character(precio$Var1)))
## [1] 4.188 11.748
print(color)
## Var1 Freq
## 1 Beige 1
## 2 Black 1
## 3 Blue 55
## 4 Brown 2
## 5 Green 6
## 6 Grey 9
## 7 Khaki 3
## 8 Maroon 4
## 9 No color 1
## 10 Pink 5
## 11 Purple 1
## 12 Red 12
## 13 White 10
## 14 Yellow 2
print(sexos)
## Var1 Freq
## 1 Men 112
Podemos concluir que los hombres que prefieren la marca “Parx”, compran sus productos a precios entre 4.188 y 11.748, a la mayoría de dicha población les gusta el azul, pero que también escogen una gran variedad de colores.
La moda del género:
result <- mlv(dataMuestra$Genero,method="mfv")
print(result)
## [1] "Men" "Women"
Podemos observar que la variable “Genero” es bimodal, ya que posee como a “Men” y “Women” como resultado de su moda.
tablaGenero<-table(dataMuestra$Genero)
maxGenero<-max(table(dataMuestra$Genero))
# Convertir la tabla en un dataframe
tabla_df <- as.data.frame(tablaGenero)
# Acceder al conteo
conteo <- tabla_df$Freq
# Definir el valor umbral para cambiar el color de la barra
ggplot(tabla_df,aes(x=tabla_df$Var1,y=tabla_df$Freq)) +
geom_bar(stat = "identity", fill = ifelse(conteo == maxGenero, "green", "blue")) +
labs(x = "Genero", y = "Cant. Apariciones") +
ggtitle("Gráfico de barras-Genero") +
theme_minimal()
EXPLICACIÓN:
Con este diagrama de barras se puede observar con mejor detenimiento como es que se distribuye la variable “Genero”, también podemos observar que la menor variable de apariciones es “Girls”. Por lo que podemos concluir que los productos en MYNTRA son más aprovachos por “Men” y “Woman”, además de que “Girls” no son clientes frecuentes en temas de “ropa de moda”.
La media de precios de la empresa en USD:
mean(dataMuestra$PrecioUSD)
## [1] 20.80039
La variable “PrecioUSD” tiene un promedio de 20.80039, pero esta información no puede ser muy confiable ya que existen formas de dar falsa información.
La mediana de precios de la empresa en USD:
MedianaPrecio<-median(dataMuestra$PrecioUSD)
print(MedianaPrecio)
## [1] 10.788
Podemos observar que la tendencia central en la variable “PrecioUSD” es de 10.788 dolares.
La moda de precios de la empresa en USD:
getmode <- function(mod) {
uniqv <- unique(mod)
uniqv[which.max(tabulate(match(mod, uniqv)))]
}
mod <- dataMuestra$PrecioUSD
result <- getmode(mod)
print(result)
## [1] 8.388
cantResult=max(table(mod))
print(cantResult)
## [1] 63
Podemos observar que el precio 8.388 dolares en la variable “PrecioUSD” es el que más se repite, siendo un total de 63 veces, por lo que podemos concluir que el precio ideal para los productos es 8.388 dolares.
tablaPrecio<-table(dataMuestra$PrecioUSD)
tabla_df <- as.data.frame(tablaPrecio)
maxCantPrecio<-max(tablaPrecio)
conteo<-tabla_df$Freq
# Acceder al conteo
plot(tabla_df,aes(x=tabla_df$Var1,y=tabla_df$Freq),main="Rango de los precios",col="red",xlab="PreciosUSD",ylab="Cant. Apariciones")+
geom_line(stat = "identity", fill = ifelse(conteo == maxCantPrecio, "green", "blue"))
## NULL
EXPLICACIÓN:
Podemos observar de mejor manera como se distribuyen los precios respecto a sus apariciones, notando de que la cantidad de más apariciones es del precio 8.38 con un total de 63 veces además de que los precios menos 25 dolares son la preferencia de los clientes ya que tienen una mayor cantidad de apariciones.
El rango de los precios:
rango<-range(dataMuestra$PrecioUSD)
print("inicia en:")
## [1] "inicia en:"
print(rango[1])
## [1] 3.108
print("termina en:")
## [1] "termina en:"
print(rango[2])
## [1] 373.2
Los valores en la variable “PrecioUSD” están en un rango entre 3.108 y 373.2.
hist(dataMuestra$PrecioUSD,col=c("red","blue","yellow","pink"),main="Histograma de precios",xlab="Precios en USD", ylab= "Cantidad")
EXPLICACIÓN:
Se puede observar de mejor manera como la mayor cantidad de apariciones en los precios son inferiores a los 50 dolares aproximadamente, y que los precios con menos apariciones son mayores a 100 dolares proximadamente. Concluyendo que los clientes prefieren los productos más baratos a 50 dolares.
El rango intercuartil de precios:
Q1=quantile(dataMuestra$PrecioUSD,0.25)#Q1
Q3=quantile(dataMuestra$PrecioUSD,0.75)#Q1
Q3-Q1
## 75%
## 11.76
#segunda forma
IQR(dataMuestra$PrecioUSD)
## [1] 11.76
boxplot(dataMuestra$PrecioUSD,col=c('yellow'),horizontal = T,main="Rango de precios USD")
EXPLICACIÓN:
En esta boxplot podemos observar que es sesgado a la derecha con valores menores a 50 dolares, con n datos atípicos y que su su mediana está alrededor de los 25 dolares aproximadamente. Podemos concluir que la parte más corta es inferior a la mediana, y la media es mayor a la mediana.
La desviación estándar:
sd(dataMuestra$PrecioUSD)#cuanto se dispersa el precio con respecto al promedio
## [1] 34.85258
A partir de esta función la variación o dispersión en la que el precio de los productos en USD difieren de la media.
La varianza del precio:
var(dataMuestra$PrecioUSD)
## [1] 1214.702
Podemos determinar que a mayor varianza del precio, mayor dispersión.
El coeficiente de variación del precio:
coef_var <- function(cv, na.rm = TRUE) {
sd(cv, na.rm=na.rm) / mean(cv, na.rm=na.rm)
}
cv <- dataMuestra$PrecioUSD
print(coef_var(cv))
## [1] 1.675573
Es el análisis de las desviaciones del precio con respecto a la media y al mismo tiempo las dispersiones que tienen los datos dispersos entre sí.
La moda de las imágenes
getmode <- function(mod) {
uniqv <- unique(mod)
uniqv[which.max(tabulate(match(mod, uniqv)))]
}
mod <- dataMuestra$NumImagenes
result <- getmode(mod)
print(result)
## [1] 5
boxplot(dataMuestra$NumImagenes,horizontal = T,col="skyblue",main="Numero de Img")
print("Promedio:")
## [1] "Promedio:"
mean(dataMuestra$NumImagenes)
## [1] 4.607
print("Mediana:")
## [1] "Mediana:"
median(dataMuestra$NumImagenes)
## [1] 5
EXPLICACIÓN:
Podemos observar que tambien presenta datos atípicos, pero algo curioso pasa en este boxplot, podemos ver que la mediana, media y la moda es aproximadamente 5, es decir podemos concluir que la distribución es simétrica.
tablaImagenes<-table(mod)
barplot(tablaImagenes,col=c('red','blue','pink','yellow','brown','skyblue','lightgreen'),main="Diagra de barras de Num. Imagenes")
> ## EXPLICACIÓN:
De una mejor manera podemos observar como es que las cantidades de los precios es que se encuentran. Con ello podemos concluir que las empresas con mayor éxito solo necesitan 5 imágenes para captar la atención del cliente.
Identificar el producto más caro:
max(dataMuestra$PrecioUSD)
## [1] 373.2
productoCaro<-dataMuestra%>%
filter(dataMuestra$PrecioUSD==max(dataMuestra$PrecioUSD))
productoCaro
unique(productoCaro$MarcaProducto)
## [1] "DKNY"
unique(productoCaro$Genero)
## [1] "Unisex"
unique(productoCaro$ColorPrimario)
## [1] "Purple" "Black"
El producto más caro es de la marca “DKNY” para los generos de “Unisex” con un precio de 373.2 dolares con los colores Purple y Black.
Identificar los colores más repetidos que llevan el aumento de precio:
Modcolor<-getmode(dataMuestra$ColorPrimario)
print(Modcolor)
## [1] "Blue"
preguntaColor<-dataMuestra %>%
filter(dataMuestra$ColorPrimario==Modcolor)
ModPrecioColor<-getmode(preguntaColor$PrecioUSD)
print(ModPrecioColor)
## [1] 8.388
cantResultColor<-max(table(preguntaColor$PrecioUSD))
barplot(table(preguntaColor$PrecioUSD), col= ifelse(table(preguntaColor$PrecioUSD)==cantResultColor,"red","green"), main="Diagrama de barras de los precios para los colores preferidos")
range(preguntaColor$PrecioUSD)
## [1] 3.192 67.188
MasCaro<-preguntaColor%>%
filter(preguntaColor$PrecioUSD==max(preguntaColor$PrecioUSD))
print(MasCaro)
## # A tibble: 1 × 8
## ProductoId NombreProducto MarcaProducto Genero PrecioUSD NumImagenes
## <dbl> <chr> <chr> <chr> <dbl> <dbl>
## 1 10015921 Raymond Men Blue Self-D… Raymond Men 67.2 5
## # ℹ 2 more variables: Descripción <chr>, ColorPrimario <chr>
EXPLICACIÓN:
Podemos observar que el color azul es el más preferido de las empresas, también que su precio más repetido es de 8.388, y se encuentra en un rango entre 3.192 y 67.188, además de que observamos de que el producto más caro con un precio de 67.188, que es destinado a los hombre, de la marca Raymond.
Con lo que podemos concluir que al alza de precio para los colores más caros, depende de la “Marca” y para el género “Cliente”.
Cuáles son los precios más caros para los Varones:
table(dataMuestra$Genero)
##
## Boys Girls Men Unisex Women
## 63 43 373 148 373
preguntaBoys<- dataMuestra %>%
filter(dataMuestra$Genero=='Boys')
MaxBoys=max(preguntaBoys$PrecioUSD)
print("Marcas: ")
## [1] "Marcas: "
unique(preguntaBoys$MarcaProducto)
## [1] "Gini and Jony" "VASTRAMAY"
## [3] "JBN Creation" "U.S. Polo Assn. Kids"
## [5] "Palm Tree" "Aj DEZInES"
## [7] "Marvel by Wear Your Mind" "Bubblegummers"
print('Precio maximo para Boys:')
## [1] "Precio maximo para Boys:"
print(MaxBoys)
## [1] 20.388
preguntaMen<- dataMuestra %>%
filter(dataMuestra$Genero=='Men')
MaxMens=max(preguntaMen$PrecioUSD)
print("Marcas: ")
## [1] "Marcas: "
unique(preguntaMen$MarcaProducto)
## [1] "Raymond" "Parx"
## [3] "SHOWOFF" "Police"
## [5] "Being Human" "YAK YAK"
## [7] "HIGHLANDER" "JEWEL JUNCTION"
## [9] "ID" "Difference of Opinion"
## [11] "Michael Kors" "Urban Dog"
## [13] "Campus Sutra" "FIDO DIDO"
## [15] "Peter England" "AIGNER"
## [17] "U.S. Polo Assn. Denim Co." "Sweet Dreams"
## [19] "Qraa Men" "WITH"
## [21] "ColorPlus" "Arrow"
## [23] "DAVID BECKHAM" "Carrera"
## [25] "HARBORNBAY" "even"
## [27] "Crimsoune Club" "Puma"
## [29] "Blackberrys" "Park Avenue"
## [31] "SIMON CARTER LONDON" "Nautica"
## [33] "Bvlgari" "Hoopers"
## [35] "Peter England Casuals" "GAS"
## [37] "VASTRAMAY" "Crew STREET"
## [39] "Zippo" "aramis"
## [41] "HERE&NOW" "French Connection"
## [43] "Next Look" "XYXX"
## [45] "Geox"
print('Precio maximo para Men:')
## [1] "Precio maximo para Men:"
print(MaxMens)
## [1] 79.788
TotalVarones=MaxBoys+MaxMens
print('Precio total:')
## [1] "Precio total:"
print(TotalVarones)
## [1] 100.176
EXPLICACIÓN:
Podemos observar que los clientes más frecuentes son los Mens que los Boys, como se dijo en la moda de “Genero”, pero tambien podemos obervar que los precios al menos uno de los más caros se encuentran en los Mens, con un valor de 79.788 dolares. Dándonos un total de los maximos precios para Mens y Boys con un precio de 100.176 dolares.
Cuáles son los precios más caros para las Damas:
table(dataMuestra$Genero)
##
## Boys Girls Men Unisex Women
## 63 43 373 148 373
preguntaGirls<- dataMuestra %>%
filter(dataMuestra$Genero=='Girls')
print("Marcas: ")
## [1] "Marcas: "
unique(preguntaGirls$MarcaProducto)
## [1] "Gini and Jony" "Stylo Bug"
## [3] "Palm Tree" "Playdate"
## [5] "berrytree" "United Colors of Benetton"
## [7] "Bubblegummers" "Pink Cow"
## [9] "Daffodils" "Bitiya by Bhama"
MaxGirls=max(preguntaGirls$PrecioUSD)
print('Precio maximo para Girls:')
## [1] "Precio maximo para Girls:"
print(MaxGirls)
## [1] 45.6
preguntaWomen<- dataMuestra %>%
filter(dataMuestra$Genero=='Women')
print("Marcas: ")
## [1] "Marcas: "
unique(preguntaWomen$MarcaProducto)
## [1] "EthnoVogue" "SPYKAR"
## [3] "Kenneth Cole" "Vishudh"
## [5] "PARFAIT" "Michael Kors"
## [7] "Sera" "AccessHer"
## [9] "Alcis" "Tokyo Talkies"
## [11] "ANNA SUI" "her by invictus"
## [13] "Soie" "Lara Karen"
## [15] "ahilya" "BuckleUp"
## [17] "Lady Lyka" "Park Avenue"
## [19] "Roadster" "Kazo"
## [21] "Bvlgari" "GAS"
## [23] "ZUSH" "DressBerry"
## [25] "Lakme" "Allen Solly Woman"
## [27] "MANGO" "Ishin"
## [29] "Shoe Couture" "Keds"
## [31] "Rozia" "HARBORNBAY"
## [33] "Monte Carlo" "ether"
## [35] "Russell Athletic" "MIMOSA"
## [37] "Rocia" "Annabelle by Pantaloons"
## [39] "DKNY" "Beli"
## [41] "Jn Joy" "THE SILHOUETTE STORE"
## [43] "Xpose" "MBE"
## [45] "Mast & Harbour" "JC Collection"
## [47] "GUESS" "StyleStone"
## [49] "SASSAFRAS" "Kook N Keech Disney"
## [51] "Honey by Pantaloons" "Police"
## [53] "DOROTHY PERKINS" "Bhama Couture"
## [55] "Puma" "C9 AIRWEAR"
## [57] "Oxolloxo" "Crocs"
## [59] "Carlton London" "shaze"
## [61] "Tulsattva" "HERE&NOW"
MaxWomen=max(preguntaWomen$PrecioUSD)
print('Precio maximo para Women: ')
## [1] "Precio maximo para Women: "
print(MaxWomen)
## [1] 133.644
TotalDamas=MaxGirls+MaxWomen
print('Precio total: ')
## [1] "Precio total: "
print(TotalDamas)
## [1] 179.244
EXPLICACIÓN:
Podemos observar que los clientes más frecuentes son las Women que las Girls, como se dijo en la moda de “Genero”, pero también podemos obervar que los precios al menos uno de los más caros se encuentran en las Women, con un valor de 133.644 dolares. Dándonos un total de los maximos precios para Women y Girls con un precio de 179.244 dolares.
if (TotalDamas>TotalVarones){
print("Las Damas tienen precio más caro con una diferencia de ")
print(TotalDamas-TotalVarones)
print("Datos de la compra")
tablaResult<-preguntaWomen %>%
filter(preguntaWomen$PrecioUSD==MaxWomen)
tablaResult
}else{
print("Los Varones tienen precio más caro con una diferencia de ")
print(TotalVarones-TotalDamas)
}
## [1] "Las Damas tienen precio más caro con una diferencia de "
## [1] 79.068
## [1] "Datos de la compra"
Podemos concluir que las damas han comprado los productos más caros y que son de la marca “ahilya”, llamado “ahilya Gold-Plated Sterling Silver Jhumka Earrings” y que es de color “Gold”.
El rango de los precios según el genero de la ropa:
ggplot(data = dataMuestra, aes(x = dataMuestra$Genero, y = dataMuestra$PrecioUSD, fill = dataMuestra$Genero)) +
geom_boxplot() +
labs(title = "Relación entre el Precio y el Género de la Ropa",
x = "Género",
y = "Precio",
fill = "Género") +
theme_minimal()
EXPLICACIÓN:
Podemos apreciar que este gráfico nos da una relación entre el precio de la ropa y el género al que va destinado, por lo que, podemos concluir que la ropa unisex es de las mas costosas, superando los 300 dolares, seguido por la ropa para mujeres y finalmete la ropa para hombres. Además, la ropa para niños es la más económica, con un precio por debajo de los 50 dolares.
La cantidad de ropa Unisex que saca cada marca
dataHombres <- dataMuestra %>% filter(Genero == "Unisex")
ggplot(data = dataHombres, aes(x = dataHombres$MarcaProducto, fill = dataHombres$Genero)) +
geom_bar(position="dodge") +
labs(title = "Relación entre la Marca y el Género de la Ropa",
x = "Marca",
y = "Conteo",
fill = "Género") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90))
EXPLICACIÓN:
Podemos apreciar, mediante un gráfico de barras que cada marca tienen una preferencia en cuanto al genero de ropa Unisex en variación a los demás géneros. De esta forma, se puede visualizar rápidamente que marcas en el conjunto de datos dataMuestra producen una mayor cantidad de ropa unisex.
Conclusiones
El producto preferido de los clientes es “Parx Men Blue Slim Fit Checked Casual Shirt”, mayormente comprado por hombres, con el color azul y sus precios rondan entre 8.148 y 11.268 dolares.
La marca preferida de los clientes es “Parx”, mayormente comprada por hombres, con colores muy variados pero con una preferencia del azul y sus precios rondan entre 4.188 y 11.748 dolares.
Nuestros mayores clientes son Men y Women (hombres y mujeres), luego el género Unisex, continuando con Boys y el cliente menos común Girls.
Nuestros precios están en un rango entre 3.108 y 373.2 dolares, el precio con el que los clientes prefieren comprar es de 8.388 dolares, además de que también en el gráfico de puntos, podemos observar que los precios menores a 50 también son más frecuentes entre los clientes por sus cantidades de apariciones.
Como hemos observado en las conclusiones 1 y 2 el color azul es el que mayormente aparece, con un rango de precios entre 3.192 y 67.188 dolares, y que el alza de precio por el color se debe ala Marca y al género del cliente.
Analizando el precio entre los géneros, no hemos tomado en cuenta el género “Unisex” por que entraría en los dos casos y se terminaran restando, luego analizamos a todo el género “Masculino” (Men y Boys) y a todo el género “Femenino” (Women y Girls), luego los sumamos todos sus precios para luego restar esos dos géneros, entonces podemos ver que el género “Femenino” es el que tiene el precio más caro (133.644 dólares) de la marca “ahilya” con el producto “ahilya Gold-Plated Sterling Silver Jhumka Earrings” de color dorado.
Parte 2
Probabilidad Empírica
Probabilidades de Marca
table(dataMuestra$MarcaProducto)
##
## AccessHer ahilya AIGNER
## 29 17 2
## Aj DEZInES Alcis Allen Solly Woman
## 2 1 2
## ANNA SUI Annabelle by Pantaloons aramis
## 1 1 1
## Arrow Being Human Beli
## 1 1 3
## berrytree Bhama Couture Bitiya by Bhama
## 2 1 1
## Blackberrys Bubblegummers BuckleUp
## 6 3 6
## Bvlgari C9 AIRWEAR Campus Sutra
## 10 1 32
## Carlton London Carrera ColorPlus
## 1 4 2
## Crew STREET Crimsoune Club Crocs
## 1 2 1
## Daffodils DAVID BECKHAM Difference of Opinion
## 1 3 11
## DKNY DOROTHY PERKINS DressBerry
## 26 1 1
## ether EthnoVogue even
## 6 4 1
## ExclusiveLane FIDO DIDO French Connection
## 1 4 1
## GAS Geox Gini and Jony
## 3 1 66
## GUESS HARBORNBAY her by invictus
## 1 3 17
## HERE&NOW HIGHLANDER Homesake
## 2 33 30
## Honey by Pantaloons Hoopers ID
## 1 1 41
## Ishin JBN Creation JC Collection
## 2 2 2
## JEWEL JUNCTION Jn Joy Kazo
## 33 1 4
## Keds Kenneth Cole Kook N Keech Disney
## 1 3 1
## Lady Lyka Lakme Lara Karen
## 29 11 1
## MANGO Marvel by Wear Your Mind Mast & Harbour
## 3 7 2
## MBE MIAH Decor Michael Kors
## 4 17 9
## MIMOSA Monte Carlo Nautica
## 4 1 1
## NEUDIS Next Look Oxolloxo
## 1 1 1
## Palm Tree PARFAIT Park Avenue
## 7 58 17
## Parx Peter England Peter England Casuals
## 112 4 1
## Pink Cow Playdate Police
## 1 3 4
## Puma Qraa Men Raymond
## 8 3 25
## Roadster Rocia ROMEE
## 4 1 2
## Rozia Russell Athletic SASSAFRAS
## 3 5 1
## SEJ by Nisha Gupta Sera shaze
## 49 13 1
## Shoe Couture SHOWOFF SIMON CARTER LONDON
## 2 3 1
## Soie Soumya SPYKAR
## 17 2 34
## Story@home StyleStone Stylo Bug
## 14 1 2
## Sweet Dreams TAYHAA THE SILHOUETTE STORE
## 2 3 1
## Tokyo Talkies Tulsattva U.S. Polo Assn. Denim Co.
## 8 1 2
## U.S. Polo Assn. Kids United Colors of Benetton Urban Dog
## 3 1 14
## VASTRAMAY Vishudh VLCC
## 6 16 1
## WITH Xpose XYXX
## 3 2 1
## YAK YAK Zippo ZUSH
## 1 1 2
tablaMarcaProducto<-table(dataMuestra$MarcaProducto)
tabla_df <- as.data.frame(tablaMarcaProducto)
tabla_df
Obtenemos el total y lo dividimos usando P’(A)=n(A)/n
print("total de casos")
## [1] "total de casos"
sum(tabla_df$Freq)
## [1] 1000
PROBABILIDADES DE LOS PRODUCTOS:
ProbMarcas<-data.frame(
"Marcas"=c(tabla_df$Var1),
"Probabilidad"=c(tabla_df$Freq/sum(tabla_df$Freq))
)
ProbMarcas
Marca más probable
ProbMarcas$Marcas[ProbMarcas$Probabilidad==max(ProbMarcas$Probabilidad)]
## [1] Parx
## 123 Levels: AccessHer ahilya AIGNER Aj DEZInES Alcis ... ZUSH
Marca menos probable
ProbMarcas$Marcas[ProbMarcas$Probabilidad==min(ProbMarcas$Probabilidad)]
## [1] Alcis ANNA SUI
## [3] Annabelle by Pantaloons aramis
## [5] Arrow Being Human
## [7] Bhama Couture Bitiya by Bhama
## [9] C9 AIRWEAR Carlton London
## [11] Crew STREET Crocs
## [13] Daffodils DOROTHY PERKINS
## [15] DressBerry even
## [17] ExclusiveLane French Connection
## [19] Geox GUESS
## [21] Honey by Pantaloons Hoopers
## [23] Jn Joy Keds
## [25] Kook N Keech Disney Lara Karen
## [27] Monte Carlo Nautica
## [29] NEUDIS Next Look
## [31] Oxolloxo Peter England Casuals
## [33] Pink Cow Rocia
## [35] SASSAFRAS shaze
## [37] SIMON CARTER LONDON StyleStone
## [39] THE SILHOUETTE STORE Tulsattva
## [41] United Colors of Benetton VLCC
## [43] XYXX YAK YAK
## [45] Zippo
## 123 Levels: AccessHer ahilya AIGNER Aj DEZInES Alcis ... ZUSH
Probabilidades de Género
table(dataMuestra$MarcaProducto)
##
## AccessHer ahilya AIGNER
## 29 17 2
## Aj DEZInES Alcis Allen Solly Woman
## 2 1 2
## ANNA SUI Annabelle by Pantaloons aramis
## 1 1 1
## Arrow Being Human Beli
## 1 1 3
## berrytree Bhama Couture Bitiya by Bhama
## 2 1 1
## Blackberrys Bubblegummers BuckleUp
## 6 3 6
## Bvlgari C9 AIRWEAR Campus Sutra
## 10 1 32
## Carlton London Carrera ColorPlus
## 1 4 2
## Crew STREET Crimsoune Club Crocs
## 1 2 1
## Daffodils DAVID BECKHAM Difference of Opinion
## 1 3 11
## DKNY DOROTHY PERKINS DressBerry
## 26 1 1
## ether EthnoVogue even
## 6 4 1
## ExclusiveLane FIDO DIDO French Connection
## 1 4 1
## GAS Geox Gini and Jony
## 3 1 66
## GUESS HARBORNBAY her by invictus
## 1 3 17
## HERE&NOW HIGHLANDER Homesake
## 2 33 30
## Honey by Pantaloons Hoopers ID
## 1 1 41
## Ishin JBN Creation JC Collection
## 2 2 2
## JEWEL JUNCTION Jn Joy Kazo
## 33 1 4
## Keds Kenneth Cole Kook N Keech Disney
## 1 3 1
## Lady Lyka Lakme Lara Karen
## 29 11 1
## MANGO Marvel by Wear Your Mind Mast & Harbour
## 3 7 2
## MBE MIAH Decor Michael Kors
## 4 17 9
## MIMOSA Monte Carlo Nautica
## 4 1 1
## NEUDIS Next Look Oxolloxo
## 1 1 1
## Palm Tree PARFAIT Park Avenue
## 7 58 17
## Parx Peter England Peter England Casuals
## 112 4 1
## Pink Cow Playdate Police
## 1 3 4
## Puma Qraa Men Raymond
## 8 3 25
## Roadster Rocia ROMEE
## 4 1 2
## Rozia Russell Athletic SASSAFRAS
## 3 5 1
## SEJ by Nisha Gupta Sera shaze
## 49 13 1
## Shoe Couture SHOWOFF SIMON CARTER LONDON
## 2 3 1
## Soie Soumya SPYKAR
## 17 2 34
## Story@home StyleStone Stylo Bug
## 14 1 2
## Sweet Dreams TAYHAA THE SILHOUETTE STORE
## 2 3 1
## Tokyo Talkies Tulsattva U.S. Polo Assn. Denim Co.
## 8 1 2
## U.S. Polo Assn. Kids United Colors of Benetton Urban Dog
## 3 1 14
## VASTRAMAY Vishudh VLCC
## 6 16 1
## WITH Xpose XYXX
## 3 2 1
## YAK YAK Zippo ZUSH
## 1 1 2
tablaGenero<-table(dataMuestra$Genero)
tabla_df <- as.data.frame(tablaGenero)
tabla_df
Obtenemos el total y lo dividimos usando P’(A)=n(A)/n
print("total de casos")
## [1] "total de casos"
sum(tabla_df$Freq)
## [1] 1000
PROBABILIDADES DE LOS GÉNEROS:
ProbGenero<-data.frame(
"Genero"=c(tabla_df$Var1),
"Probabilidad"=c(tabla_df$Freq/sum(tabla_df$Freq))
)
ProbGenero
Género más probable
ProbGenero$Genero[ProbGenero$Probabilidad==max(ProbGenero$Probabilidad)]
## [1] Men Women
## Levels: Boys Girls Men Unisex Women
Género menos probable
ProbGenero$Genero[ProbGenero$Probabilidad==min(ProbGenero$Probabilidad)]
## [1] Girls
## Levels: Boys Girls Men Unisex Women
Probabilidades de color
table(dataMuestra$MarcaProducto)
##
## AccessHer ahilya AIGNER
## 29 17 2
## Aj DEZInES Alcis Allen Solly Woman
## 2 1 2
## ANNA SUI Annabelle by Pantaloons aramis
## 1 1 1
## Arrow Being Human Beli
## 1 1 3
## berrytree Bhama Couture Bitiya by Bhama
## 2 1 1
## Blackberrys Bubblegummers BuckleUp
## 6 3 6
## Bvlgari C9 AIRWEAR Campus Sutra
## 10 1 32
## Carlton London Carrera ColorPlus
## 1 4 2
## Crew STREET Crimsoune Club Crocs
## 1 2 1
## Daffodils DAVID BECKHAM Difference of Opinion
## 1 3 11
## DKNY DOROTHY PERKINS DressBerry
## 26 1 1
## ether EthnoVogue even
## 6 4 1
## ExclusiveLane FIDO DIDO French Connection
## 1 4 1
## GAS Geox Gini and Jony
## 3 1 66
## GUESS HARBORNBAY her by invictus
## 1 3 17
## HERE&NOW HIGHLANDER Homesake
## 2 33 30
## Honey by Pantaloons Hoopers ID
## 1 1 41
## Ishin JBN Creation JC Collection
## 2 2 2
## JEWEL JUNCTION Jn Joy Kazo
## 33 1 4
## Keds Kenneth Cole Kook N Keech Disney
## 1 3 1
## Lady Lyka Lakme Lara Karen
## 29 11 1
## MANGO Marvel by Wear Your Mind Mast & Harbour
## 3 7 2
## MBE MIAH Decor Michael Kors
## 4 17 9
## MIMOSA Monte Carlo Nautica
## 4 1 1
## NEUDIS Next Look Oxolloxo
## 1 1 1
## Palm Tree PARFAIT Park Avenue
## 7 58 17
## Parx Peter England Peter England Casuals
## 112 4 1
## Pink Cow Playdate Police
## 1 3 4
## Puma Qraa Men Raymond
## 8 3 25
## Roadster Rocia ROMEE
## 4 1 2
## Rozia Russell Athletic SASSAFRAS
## 3 5 1
## SEJ by Nisha Gupta Sera shaze
## 49 13 1
## Shoe Couture SHOWOFF SIMON CARTER LONDON
## 2 3 1
## Soie Soumya SPYKAR
## 17 2 34
## Story@home StyleStone Stylo Bug
## 14 1 2
## Sweet Dreams TAYHAA THE SILHOUETTE STORE
## 2 3 1
## Tokyo Talkies Tulsattva U.S. Polo Assn. Denim Co.
## 8 1 2
## U.S. Polo Assn. Kids United Colors of Benetton Urban Dog
## 3 1 14
## VASTRAMAY Vishudh VLCC
## 6 16 1
## WITH Xpose XYXX
## 3 2 1
## YAK YAK Zippo ZUSH
## 1 1 2
tablaColor<-table(dataMuestra$ColorPrimario)
tabla_df <- as.data.frame(tablaColor)
tabla_df
Obtenemos el total y lo dividimos usando P’(A)=n(A)/n
print("total de casos")
## [1] "total de casos"
sum(tabla_df$Freq)
## [1] 1000
PROBABILIDADES DE LOS COLORES:
ProbColores<-data.frame(
"Color"=c(tabla_df$Var1),
"Probabilidad"=c(tabla_df$Freq/sum(tabla_df$Freq))
)
ProbColores
Color más probable
ProbColores$Color[ProbColores$Probabilidad==max(ProbColores$Probabilidad)]
## [1] Blue
## 26 Levels: Beige Black Blue Brown Burgundy Charcoal Gold Green Grey ... Yellow
Color menos probable
ProbColores$Color[ProbColores$Probabilidad==min(ProbColores$Probabilidad)]
## [1] Charcoal Lavender Peach Platinum Rose
## 26 Levels: Beige Black Blue Brown Burgundy Charcoal Gold Green Grey ... Yellow
Probabilidad Condicional
¿Cuál es la probabilidad de seleccionar dos prendas de la marca Parx? (sin quitar)
#P(P1,P2)= P(P1)* P(P2/P1)
P1=ProbMarcas$Probabilidad[ProbMarcas$Marcas=="Parx"]
P1
## [1] 0.112
P2=ProbMarcas$Probabilidad[ProbMarcas$Marcas=="Parx"]
P2
## [1] 0.112
P1_P2=P1*P2
P1_P2
## [1] 0.012544
¿Cuál es la probabilidad de escoger dos prendas de color Gold? (sin quitar)
#P(P1,P2)= P(P1)* P(P2/P1)
P1=ProbColores$Probabilidad[ProbColores$Color=="Gold"]
P1
## [1] 0.045
P2=ProbColores$Probabilidad[ProbColores$Color=="Gold"]
P2
## [1] 0.045
P1_P2=P1*P2
P1_P2
## [1] 0.002025
¿Cuál es la probabilidad de que entrevistar 2 clientes Men? (sin repetir)
#P(P1,P2)= P(P1)* P(P2/P1)
P1=ProbGenero$Probabilidad[ProbGenero$Genero=="Men"]
P1
## [1] 0.373
print("Regresamos su tabla a la normalidad")
## [1] "Regresamos su tabla a la normalidad"
ProbGenero$Probabilidad<-ProbGenero$Probabilidad*1000
ProbGenero
ProbGenero$Probabilidad<-c(ProbGenero$Probabilidad[1:2],ProbGenero$Probabilidad[ProbGenero$Genero=="Men"]-1,ProbGenero$Probabilidad[4:5])
ProbGenero
ProbGenero$Probabilidad<-ProbGenero$Probabilidad/999
ProbGenero
P2=ProbGenero$Probabilidad[ProbGenero$Genero=="Men"]
P2
## [1] 0.3723724
P1_P2=P1*P2
P1_P2
## [1] 0.1388949
¿Cuál es la probabilidad de devolver dos prendas de la marca Parx y luego de la marca ExclusiveLane?
#P(P1,P2)= P(P1)* P(P2/P1)
P1=ProbMarcas$Probabilidad[ProbMarcas$Marcas=="Parx"]
P1
## [1] 0.112
print("Regresamos su tabla a la normalidad")
## [1] "Regresamos su tabla a la normalidad"
ProbMarcas$Probabilidad<-ProbMarcas$Probabilidad*1000
ProbMarcas
ProbMarcas$Probabilidad<-c(ProbMarcas$Probabilidad[1:78],ProbMarcas$Probabilidad[ProbMarcas$Marcas=="Parx"]-1,ProbMarcas$Probabilidad[80:123])
ProbMarcas
ProbMarcas$Probabilidad<-ProbMarcas$Probabilidad/999
ProbMarcas
P2=ProbMarcas$Probabilidad[ProbMarcas$Marcas=="ExclusiveLane"]
P2
## [1] 0.001001001
P1_P2=P1*P2
P1_P2
## [1] 0.0001121121